<?php

namespace Siese\LoginBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Siese\EntityBundle\Entity\Repositorios\DependenciasRepository;

class EditarUsuariosType extends AbstractType
{
    
    protected $seleccione_opcion = "Seleccione una Opción";
    protected $idDependencia;
    protected $usuario;
    
    public function __construct($idDependencia = null,$usuario) {
      $this->idDependencia = $idDependencia;
      $this->usuario = $usuario;
    }
    
   /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        
        $usuario = $this->usuario;
        $funcionario = $usuario->getFuncionario();
        $idDependencia = $this->idDependencia;
        $sede = null;
        
        
        foreach ($usuario->getSedesUsuario() as $sedeUsuario):
          $sede = $sedeUsuario->getSede();
        endforeach;
        
        $builder->add('cedula', 'text', array(
                                            'label' => 'Cédula',
                                            'mapped' => false,
                                            'data' => $funcionario->getCedula(),
                                            'attr' => array('class' => 'form-control'
                                                            )))  
                ->add('nombresFuncionario', 'text', array(
                                            'label' => 'Nombres',
                                            'mapped' => false,
                                            'data' => $funcionario->getNombres(),
                                            'attr' => array('class' => 'form-control')))
                ->add('apellidosFuncionario', 'text', array(
                                            'label' => 'Apellidos',
                                            'mapped' => false,
                                            'data' => $funcionario->getApellidos(),
                                            'attr' => array('class' => 'form-control')))  
                ->add('correoInstitucional', 'text', array(
                                            'label' => 'Correo Institucional',
                                            'mapped' => false,
                                            'data' => $funcionario->getCorreoInstitucional(),
                                            'attr' => array('class' => 'form-control')))
                ->add('correoPersonal',     'text', array(
                                            'label' => 'Correo Personal',
                                            'mapped' => false,
                                            'data' => $funcionario->getCorreoPersonal(),
                                            'attr' => array('class' => 'form-control')))
                ->add('telefono',           'text', array(
                                            'label' => 'Telefono',
                                            'mapped' => false,
                                            'data' => $funcionario->getTelefono(),
                                            'attr' => array('class' => 'form-control')))                
                
                ->add('sede','entity',array('label' => 'Sede',
                                                   'class' => 'SieseEntityBundle:CatSedes',
                                                   /*'query_builder' => function(DependenciasRepository $er) use ($idDependencia) {
                                                    return $er->createQueryBuilder('u')
                                                               ->where('u.id = :idDependencia') 
                                                               ->setParameter('idDependencia', $idDependencia);
                                                     }, */               
                                                   'property' => 'nbSede',
                                                   'data' => $sede,
                                                   'required' => false,
                                                   'mapped' => false,
                                                   'expanded' => false,
                                                   'multiple' => false,
                                                   'empty_value' => $this->seleccione_opcion,
                                                   'attr' => array(
                                                   'style' => 'margin-bottom:10px;',
                                                   'class' => 'form-control')))    
                ->add('username', 'text', array(
                                            'label' => 'Usuario',
                                            'mapped' => true,
                                            'attr' => array('class' => 'form-control')))
                ->add('password', 'repeated', array(
                                'type' => 'password',
                                'invalid_message' => 'La contraseña debe coincidir.',
                                'options' => array('attr' => array('class' => 'password-field form-control')),
                                'required' => true,
                                'mapped' => true,
                                'first_options'  => array('label' => 'Contraseña'),
                                'second_options' => array('label' => 'Repetir Contraseña'))) 
                
                      ;
    }
    

    /**
     * @return string
     */
    public function getName()
    {
        return 'siese_editar_usuarios_form';
    }
}
